package com.example.service1.provider.parser;

import com.alibaba.csp.sentinel.adapter.spring.webmvc.callback.RequestOriginParser;
import org.springframework.stereotype.Component;

import javax.servlet.http.HttpServletRequest;


/**
 * 如果使用访问控制规则，则必须实现RequestOriginParser接口，并注入容器
 * 否则会出现失效。
 */
@Component
public class AuthorityRuleParser implements RequestOriginParser {

    /**
     * 解析调用方的请求，获取调用方的名称
     * 根据调用方的名称进行访问控制
     * @param request 调用方的调用请求
     * @return 返回调用方的名称
     */
    @Override
    public String parseOrigin(HttpServletRequest request) {
        //名字的解析处理
        String callName = request.getHeader("authority-rule");
        //返回调用方名称
        return callName;
    }
}
